﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlServerCe;
namespace AlumnesBD
{
    class AlumneConversor : Alumne
    {
        /*** 
         * Carrega un alumne
         * Carregarà l'alumne amb ID = a la propietat id.
         */
        public void load()
        {
            if (this.ID2 < 0)
                throw new Exception("El numero de matricula " +
            " ha de ser superior a 0");

            SqlCeConnection con = Basededades.connectar();
            con.Open();

            String sql = "SELECT ID, Nom, Cognom " +
                         "FROM Alumne " +
                         "WHERE ID = " + this.ID + " "; ;
            SqlCeCommand c = new SqlCeCommand(sql, con);
            //Llegir primer registre i executarlo
            SqlCeDataReader dr = c.ExecuteReader();
            //Si s'ha llegir
            if (dr.Read())
            {
                this.Nom = dr["Nom"].ToString();
                this.Cognom = dr["Cognom"].ToString();
            }
            else
            {
                new System.Exception("No s'han trobat dades" +
                this.ID);
            }
            
        }
        /**
         * Guarda l'alumne amb ID a la BD  
         */
        public void insert()
        {
            if(this.ID2<0)
                throw new Exception("El numero de matricula " + 
            " ha de ser superior a 0");
            
            SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\omartin\Documents\Visual Studio 2008\Projects\Xevi_Tarre\AlumnesBD\AlumnesBD\Alumnes.sdf");
            con.Open();
            

            String sql = "INSERT INTO Alumne " +
                "(ID, Nom, Cognom)" +
                " VALUES (@ID, @Nom, @Cognom)";
            SqlCeCommand c = new SqlCeCommand(sql, con);
            c.Parameters.Add("@ID", System.Data.SqlDbType.Int);
            c.Parameters.Add("@Nom", System.Data.SqlDbType.NVarChar, 50);
            c.Parameters.Add("@Cognom", System.Data.SqlDbType.NVarChar, 50);
            c.Parameters["@ID"].Value = this.ID;
            c.Parameters["@Nom"].Value = this.Nom;
            c.Parameters["@Cognom"].Value = this.Cognom;
            //Prepare: Per si volguessim executar més d'una vegada la consulta
            //c.Prepare();

            if (c.ExecuteNonQuery() == 0)
                throw new Exception("Error al executar l'sql: " + sql);
            con.Close();
        }
    }
}
